{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 获取请求延迟分布情况"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "from matplotlib.ticker import PercentFormatter\n",
    "from matplotlib.pyplot import MultipleLocator, plot\n",
    "\n",
    "latency = pd.read_csv('latency.csv').apply(pd.to_numeric).values.flatten()\n",
    "\n",
    "plt.subplot(211)\n",
    "plt.plot(latency)\n",
    "plt.subplot(212)\n",
    "plt.plot(sorted(latency, reverse=True))\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 用排队论模型来拟合实测数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Fitted lambda: 4.440892098500626e-16\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Administrator\\AppData\\Local\\Temp\\ipykernel_4188\\2287880910.py:8: RuntimeWarning: overflow encountered in exp\n",
      "  return 1 - np.exp(-λ * t)# 构造 ECDF 数据\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Temp\\ipykernel_4188\\2287880910.py:18: OptimizeWarning: Covariance of the parameters could not be estimated\n",
      "  popt, pcov = curve_fit(queue_model, latency_sorted, ecdf_values)\n"
     ]
    },
    {
     "data": {
      "image/png": "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QVRUFGJjY+WjL7GxsbCyssLEiRMBAHZ2dnjppZfw+uuvw9HREQ4ODliwYAF69+6NIUOGyOMOHjwYYWFhmD17NgBg/vz5mDJlCvr37w8/Pz98+OGHuHTpksapsHppaWn4+eef8dFHHwEAnnjiCZw+fRr//ve/cfnyZZiamuLRRx9t6q4TERHhyo1KDFmfgUp16/+D2tLcFPbWFsaeRqvW5CD0ww8/YNCgQfLr+utpIiIisGPHDixatAiVlZWIjIxESUkJfH19kZqaChsbG3mdjRs3wszMDOPHj0dlZSUGDx6MHTt2aHzGzy+//ILi4mL59YQJE/D7779j5cqVuHbtGry9vfH111+ja9euGvOrrKzE7NmzkZycDBOTO58O4OLigk2bNuHFF1+EUqlEYmIiLC0Nf4U6ERE9/ErKq1GprkX8hMfQo2NbY0+nUfbWFnBphjuyHiZNDkJBQUGQJKnB5QqFAjExMYiJiWmwT5s2bbBp0yZs2rSpwT4XLlzQaouMjERkZGSj87O0tMSZM2e02qdPn47p06c3ui4RERmXoU851d8mnn+1zGAXBdefcurRsa3WtTf04DHuhwcQERH9V/OdcjLDurzvDToiTzk9PBiEiIioVWiOU041NTXIzMzEwIEDDXqbOE85PTwYhIiIqFUx5CkntVqNi22BXs62wt0+T/phECIiEkRrv+Wbt3uTMTAIEREJ4EG55ZvX3lBLYxAiIhLAg3LLN6+9oZbGIETUDAx5CqI5bv990LEmujVWF97yTaQbf4MQGVjznIIw/O2/Dz7WRLeG68LTTkTaGISIDMzQpyCa6/bfBxlrotvd6sLTTkTa+BuEqJkY6hQEb//VxproxroQNZ2JsSdAREREZCwMQkRERCQsBiEiIiISFoMQERERCYtBiIiIiITFIERERETCYhAiIiIiYTEIERERkbAYhIiIiEhYDEJEREQkLAYhIiIiEhaDEBEREQmLQYiIiIiExSBEREREwmIQIiIiImExCBEREZGwGISIiIhIWAxCREREJCwGISIiIhIWgxAREREJi0GIiIiIhMUgRERERMJiECIiIiJhMQgRERGRsBiEiIiISFgMQkRERCQsBiEiIiISFoMQERERCYtBiIiIiITFIERERETCYhAiIiIiYTEIERERkbAYhIiIiEhYDEJEREQkLAYhIiIiEhaDEBEREQnL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i0GIiIiIhMUgRERERMJiECIiIiJhMQgRERGRsBiEiIiISFgMQkRERCQsBiEiIiISFoMQERERCYtBiIiIiITFIERERETCYhAiIiIiYTEIERERkbAYhIiIiEhYDEJEREQkLAYhIiIiEhaDEBEREQmLQYiIiIiExSBEREREwmIQIiIiImExCBEREZGwGISIiIhIWAxCREREJCwGISIiIhIWgxAREREJi0GIiIiIhMUgRERERMJiECIiIiJhMQgRERGRsBiEiIiISFgMQkRERCQsBiEiIiISFoMQERERCYtBiIiIiITFIERERETCYhAiIiIiYTEIERERkbAYhIiIiEhYDEJEREQkLAYhIiIiEhaDEBEREQmLQYiIiIiExSBEREREwmIQIiIiImExCBEREZGwGISIiIhIWAxCREREJCwGISIiIhIWgxAREREJi0GIiIiIhMUgRERERMJiECIiIiJhMQgRERGRsBiEiIiISFgMQkRERCSsZg9CcXFxUCgUiIqKktskSUJMTAycnZ1haWmJoKAg5Ofn33WsPXv2wMvLC0qlEl5eXkhJSdFYvmvXLri6usLBwQELFy7UWHbhwgV4eHigrKzMIPtFRERED75mDULZ2dn48MMP0adPH432tWvXYsOGDUhISEB2djZUKhWCg4Nx8+bNBsc6evQoJkyYgClTpuDEiROYMmUKxo8fj6ysLABAcXExpk+fjnXr1mH//v1ITEzEV199Ja8/c+ZMrF69Gra2ts2zs0RERPTAabYgdOvWLUyaNAlbtmyBvb293C5JEuLj47F06VKMHTsW3t7eSExMREVFBZKSkhocLz4+HsHBwYiOjoanpyeio6MxePBgxMfHAwDOnz8POzs7TJgwAQMGDMCgQYNw8uRJAEBSUhIsLCwwduzY5tpdIiIiegCZNdfAs2bNwogRIzBkyBCsWrVKbi8oKEBhYSFCQkLkNqVSicDAQBw5cgSvvvqqzvGOHj2KefPmabSFhobKQcjd3R0VFRU4fvw4unbtiuzsbEybNg3Xr1/H8uXL8d133+k176qqKlRVVcmv60+lqdVqqNVqvcbQR/1YhhzzXtXU1MjfjT2f1lSX1oI10caa6Ma6aGNNdGstdWnO9x99x2uWILR79278+OOPyM7O1lpWWFgIAHByctJod3JywsWLFxscs7CwUOc69ePZ29sjMTER4eHhqKysRHh4OEJDQzFt2jTMmTMHBQUFGD16NNRqNWJiYjBu3Did24mLi8OKFSu02lNTU2FlZdX4jt+DtLQ0g4/ZVJdvAYAZMjMzcbGtsWdzR2uoS2vDmmhjTXRjXbSxJroZuy7N+f5TUVGhVz+DB6HLly9j7ty5SE1NRZs2bRrsp1AoNF5LkqTV1tR1wsLCEBYWJr9OT09HXl4eEhIS0KNHD3z88cdQqVR44oknEBAQgI4dO2ptIzo6GvPnz5dfl5WVwdXVFSEhIQa9vkitViMtLQ3BwcEwNzc32Lj3Iv9qGdblfY+BAweil7Nxr6FqTXVpLVgTbayJbqyLNtZEt9ZSl+Z8/9H35iiDB6GcnBwUFRXBx8dHbqutrcXBgweRkJCAM2fOALhzhKdTp05yn6KiIq0jPn+kUqnkoz/6rFNVVYXIyEjs3LkT586dQ01NDQIDAwEAHh4eyMrKwqhRo7TWUyqVUCqVWu3m5ubN8sPSXOM2hZmZmfzd2HOp1xrq0tqwJtpYE91YF22siW7Grktzvv/oO57BL5YePHgw8vLykJubK3/1798fkyZNQm5uLrp37w6VSqVxOK66uhoZGRnw9/dvcFw/Pz+tQ3ipqakNrvPWW29h2LBhePzxx1FbWyufhwTuJOHa2tr73FMiIiJ60Bn8iJCNjQ28vb012qytreHo6Ci3R0VFITY2Fu7u7nB3d0dsbCysrKwwceJEeZ3w8HC4uLggLi4OADB37lwEBARgzZo1ePbZZ/HZZ5/hwIEDyMzM1JpDfn4+kpOTkZubCwDw9PSEiYkJtm7dCpVKhdOnT2PAgAGG3nUiIiJ6wDTbXWONWbRoESorKxEZGYmSkhL4+voiNTUVNjY2cp9Lly7BxOR/B6z8/f2xe/duLFu2DG+++SYeeeQRJCcnw9fXV2NsSZLwyiuvYOPGjbC2tgYAWFpaYseOHZg1axaqqqqQkJAAFxeXltlZIiIiarVaJAilp6drvFYoFIiJiUFMTIze6wDAuHHjGrzb649jHz58WKt95MiRGDlypD7TJSIiIkHwWWNEREQkLAYhIiIiEhaDEBEREQmLQYiIiIiExSBEREREwmIQIiIiImExCBEREZGwGISIiIhIWAxCREREJCwGISIiIhIWgxAREREJi0GIiIiIhMUgRERERMJiECIiIiJhMQgRERGRsBiEiIiISFgMQkRERCQsBiEiIiISFoMQERERCYtBiIiIiITFIERERETCYhAiIiIiYTEIERERkbAYhIiIiEhYDEJEREQkLAYhIiIiEhaDEBEREQmLQYiIiIiExSBEREREwmIQIiIiImExCBEREZGwGISIiIhIWAxCREREJCwGISIiIhIWgxAREREJi0GIiIiIhMUgRERERMJiECIiIiJhMQgRERGRsBiEiIiISFgMQkRERCQsBiEiIiISFoMQERERCYtBiIiIiITFIERERETCYhAiIiIiYTEIERERkbAYhIiIiEhYDEJEREQkLAYhIiIiEhaDEBEREQmLQYiIiIiExSBEREREwmIQIiIiImExCBEREZGwGISIiIhIWAxCREREJCwGISIiIhIWgxAREREJi0GIiIiIhGXwIBQXF4cBAwbAxsYGHTt2xJgxY3DmzBmNPpIkISYmBs7OzrC0tERQUBDy8/PvOvaePXvg5eUFpVIJLy8vpKSkaCzftWsXXF1d4eDggIULF2osu3DhAjw8PFBWVnb/O0lEREQPBYMHoYyMDMyaNQvff/890tLSUFNTg5CQEJSXl8t91q5diw0bNiAhIQHZ2dlQqVQIDg7GzZs3Gxz36NGjmDBhAqZMmYITJ05gypQpGD9+PLKysgAAxcXFmD59OtatW4f9+/cjMTERX331lbz+zJkzsXr1atja2hp6l4mIiOgBZfAgtG/fPkydOhW9evVC3759sX37dly6dAk5OTkA7hwNio+Px9KlSzF27Fh4e3sjMTERFRUVSEpKanDc+Ph4BAcHIzo6Gp6enoiOjsbgwYMRHx8PADh//jzs7OwwYcIEDBgwAIMGDcLJkycBAElJSbCwsMDYsWMNvbtERET0ADNr7g2UlpYCABwcHAAABQUFKCwsREhIiNxHqVQiMDAQR44cwauvvqpznKNHj2LevHkabaGhoXIQcnd3R0VFBY4fP46uXbsiOzsb06ZNw/Xr17F8+XJ89913es23qqoKVVVV8uv6U2lqtRpqtVq/ndZD/ViGHPNe1dTUyN+NPZ/WVJfWgjXRxproxrpoY010ay11ac73H33Ha9YgJEkS5s+fj4EDB8Lb2xsAUFhYCABwcnLS6Ovk5ISLFy82OFZhYaHOderHs7e3R2JiIsLDw1FZWYnw8HCEhoZi2rRpmDNnDgoKCjB69Gio1WrExMRg3LhxOrcTFxeH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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "from scipy.optimize import curve_fit\n",
    "\n",
    "# 指数分布模型\n",
    "def queue_model(t, λ):\n",
    "    return 1 - np.exp(-λ * t)# 构造 ECDF 数据\n",
    "\n",
    "# 加载延迟数据\n",
    "latency = pd.read_csv('latency.csv').apply(pd.to_numeric).values.flatten()\n",
    "\n",
    "# 构造 ECDF 数据\n",
    "latency_sorted = np.sort(latency)\n",
    "ecdf_values = np.arange(len(latency_sorted)) / float(len(latency_sorted))\n",
    "\n",
    "# 非线性回归拟合模型\n",
    "popt, pcov = curve_fit(queue_model, latency_sorted, ecdf_values)\n",
    "\n",
    "# 提取最优参数\n",
    "λ_opt = popt[0]\n",
    "print(\"Fitted lambda:\", λ_opt)\n",
    "\n",
    "# 设置百分位纵轴\n",
    "ax = plt.gca()\n",
    "# ax.xaxis.set_major_locator(MultipleLocator(5))\n",
    "ax.yaxis.set_major_formatter(PercentFormatter(xmax=1, decimals=1))\n",
    "\n",
    "# 绘制实际数据和拟合的模型\n",
    "X_qt = np.linspace(0, max(latency), 1000)\n",
    "Y_qt_opt = queue_model(X_qt, λ_opt)\n",
    "\n",
    "plt.hist(latency, cumulative=True, density=True, histtype='step', label='Empirical CDF')\n",
    "plt.plot(X_qt, Y_qt_opt, 'r-', label=f'Fitted Model with λ={λ_opt:.3f}')\n",
    "plt.legend()\n",
    "plt.grid()\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "lab",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.8"
  },
  "orig_nbformat": 4,
  "vscode": {
   "interpreter": {
    "hash": "3b1ac052aeca451b2e23f63df1a51951d9633e2640e7475e0dfc079eb8f1e08a"
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
